home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 039a / dflat8.zip / BARCHART.C < prev    next >
Text File  |  1991-09-30  |  2KB  |  74 lines

  1. /* ------------ barchart.c ----------- */
  2. #include "dflat.h"
  3.  
  4. #define BCHEIGHT 12
  5. #define BCWIDTH 44
  6. #define COLWIDTH 4
  7.  
  8. static WINDOW Bwnd;
  9.  
  10. /* ------- project schedule array ------- */
  11. static struct ProjChart {
  12.     char *prj;
  13.     int start, stop;
  14. } projs[] = {
  15.     {"Center St", 0,3},
  16.     {"City Hall", 0,5},
  17.     {"Rt 395   ", 1,4},
  18.     {"Sky Condo", 2,3},
  19.     {"Out Hs   ", 0,4},
  20.     {"Bk Palace", 1,5}
  21. };
  22.  
  23. static char *Title =  "              PROJECT SCHEDULE";
  24. static char *Months = "           Jan Feb Mar Apr May Jun";
  25.  
  26. static int BarChartProc(WINDOW wnd, MESSAGE msg, PARAM p1, PARAM p2)
  27. {
  28.     switch (msg)    {
  29.         case COMMAND:
  30.             if ((int)p1 == ID_HELP)    {
  31.                 DisplayHelp(wnd, "BarChart");
  32.                 return TRUE;
  33.             }
  34.             break;
  35.         case CLOSE_WINDOW:
  36.             Bwnd = NULL;
  37.             break;
  38.         default:
  39.             break;
  40.     }
  41.     return DefaultWndProc(wnd, msg, p1, p2);
  42. }
  43.  
  44. void BarChart(WINDOW pwnd)
  45. {
  46.     int pct = sizeof projs / sizeof(struct ProjChart);
  47.     int i;
  48.  
  49.     if (Bwnd == NULL)    {
  50.         Bwnd = CreateWindow(PICTUREBOX,
  51.                     "BarChart",
  52.                     -1, -1, BCHEIGHT, BCWIDTH,
  53.                     NULL, pwnd, BarChartProc,
  54.                     SHADOW     |
  55.                     CONTROLBOX |
  56.                     MOVEABLE   |
  57.                     HASBORDER
  58.         );
  59.         SendMessage(Bwnd, ADDTEXT, (PARAM) Title, 0);
  60.         SendMessage(Bwnd, ADDTEXT, (PARAM) "", 0);
  61.         for (i = 0; i < pct; i++)    {
  62.             SendMessage(Bwnd, ADDTEXT, (PARAM) projs[i].prj, 0);
  63.             DrawBar(Bwnd, SOLIDBAR+(i%4),
  64.                 11+projs[i].start*COLWIDTH, 2+i,
  65.                 (1 + projs[i].stop-projs[i].start) * COLWIDTH,
  66.                 TRUE);
  67.         }
  68.         SendMessage(Bwnd, ADDTEXT, (PARAM) "", 0);
  69.         SendMessage(Bwnd, ADDTEXT, (PARAM) Months, 0);
  70.         DrawBox(Bwnd, 10, 1, pct+2, 25);
  71.     }
  72.     SendMessage(Bwnd, SETFOCUS, TRUE, 0);
  73. }
  74.